﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using SisEagle.View.Web.Base;
using System.Data;
using SisEagle.IView.Fornecedores;

namespace SisEagle.View.Web.Fornecedores
{
    public partial class Fornecedores : WebPageBase, IFornecedoresView
    {
        #region Singleton
        private SisEagleBO.FornecedorBO _FornecedorBusiness;
        private SisEagleBO.FornecedorBO FornecedorBusiness
        {
            get
            {
                if (_FornecedorBusiness == null)
                    _FornecedorBusiness = new SisEagleBO.FornecedorBO();

                return _FornecedorBusiness;
            }
        }

        #endregion

        #region Page-Load / Oninit

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            if (!DesignMode)
            {
                inicialize();
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {

            if (!IsPostBack)
            {

            }
        }

        #endregion


        #region Internal
        private void inicialize()
        {
            btnLocalizar.Click += (btnLocalizar_Click);
            gridFornecedores.PageIndexChanging += (gridFornecedores_PageIndexChanging);
            gridFornecedores.RowDataBound += gridFornecedores_RowDataBound;

        }

        void gridFornecedores_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            int TotalRow = ListaResultado.Tables["Fornecedor"].Rows.Count;
            AjustaTotalizador(TotalRow, null,string.Empty, null, string.Empty, e);
        }

        void gridFornecedores_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gridFornecedores.PageIndex = e.NewPageIndex;
            gridFornecedores.DataSource = BuscarFornecedores();
            gridFornecedores.DataBind();
        }

        private DataView BuscarFornecedores()
        {
            DataView dv = new DataView();

            dv = FornecedorBusiness.FindAll().Tables[0].DefaultView;

            return dv;
        }

        protected void btnLocalizar_Click(object sender, ImageClickEventArgs e)
        {
            CarregaGrid();
        }

        private void CarregaGrid()
        {
            gridFornecedores.DataSource = ListaResultado;
            gridFornecedores.DataBind();
        }

        #endregion

        #region Binding

        public int CodFornecedor
        {
            get
            {
                if (string.IsNullOrEmpty(txtCodigoFornedor.Text) || !(UtilsNumber.IsNumber(txtCodigoFornedor.Text)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(txtCodigoFornedor.Text);

            }
            set
            {
                txtCodigoFornedor.Text = value.ToString();
            }
        }

        public string RazaoSocial
        {
            get
            {
                if (string.IsNullOrEmpty(txtRazaoSocial.Text))
                    return string.Empty;

                else
                    return txtRazaoSocial.Text.TrimStart();
            }
            set
            {
                txtRazaoSocial.Text = value;
            }
        }

        public string CNPJ
        {
            get
            {
                if (string.IsNullOrEmpty(txtCNPJ.Text))
                    return string.Empty;

                else
                    return txtCNPJ.Text.TrimStart();
            }
            set
            {
                txtCNPJ.Text = value;
            }
        }

        public string Endereco
        {
            get
            {
                if (string.IsNullOrEmpty(txtEndereco.Text))
                    return string.Empty;

                else
                    return txtEndereco.Text.TrimStart();
            }
            set
            {
                txtEndereco.Text = value;
            }
        }

        public int CodEstado
        {
            get
            {
                if (string.IsNullOrEmpty(UcCmbEstados.ComboEstados.SelectedValue) || !(UtilsNumber.IsNumber(UcCmbEstados.ComboEstados.SelectedValue)))
                {
                    return 0;
                }
                else
                    return Convert.ToInt32(UcCmbEstados.ComboEstados.SelectedValue);

            }
            set
            {

                UcCmbEstados.ComboEstados.SelectedValue = value.ToString();
            }
        }

        public string NomeContato
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public DataSet ListaResultado
        {
            get
            {
                if (CodFornecedor != 0)
                    return FornecedorBusiness.FindBy_CodFornecedor(CodFornecedor);

                if (!string.IsNullOrEmpty(RazaoSocial))
                    return FornecedorBusiness.FindBy_RazaoSocial(RazaoSocial);

                if (!string.IsNullOrEmpty(CNPJ))
                    return FornecedorBusiness.FindBy_CNPJ(CNPJ);

                if (!string.IsNullOrEmpty(Endereco))
                    return FornecedorBusiness.FindBy_Endereco(Endereco);

                if (CodEstado != 0)
                    return FornecedorBusiness.FindBy_CodEstado(CodEstado);
                else
                    return FornecedorBusiness.FindAll();

            }
            set
            {
                ListaResultado = value;
                CarregaGrid();
            }
        }
        #endregion

    }
}